const router=require('./index');

//数组元素
var productArr=[
    {
        id:1,
        product:'男装',
        KuCun:118,
        price:'688',
        PinPaiShan:'海澜之家'
    },
    {
        id:2,
        product:'女装',
        KuCun:200,
        price:'580',
        PinPaiShan:'海澜小家'

    },
    {
        id:3,
        product:'童装',
        KuCun:2218,
        price:'566',
        PinPaiShan:'海澜之家'

    },
    {
        id:4,
        product:'西装',
        KuCun:2200,
        price:'2580',
        PinPaiShan:'阿玛尼'

    },   {
        id:5,
        product:'泳装',
        KuCun:1200,
        price:'50',
        PinPaiShan:'鸿星尔克'

    },
]

//查询
let product_Index_fn=(ctx,next)=>{
  
    let requesr_id=ctx.request.query.keyWord; // 获取请求的id
   
    //如果请求的id不是空的 那说明有数据
    if(requesr_id){
        //过滤请求的数据是否存在
        let resultObj=productArr.filter(item=>{
            return item.id==requesr_id
        })
        
        ctx.body=resultObj; 
    }else{ 
        //如果是空的就默认渲染数组元素
        ctx.body=productArr
    }

   

 }


 //新增提交
let product_post_fn=(ctx,next)=>{
    let id=productArr[productArr.length-1].id+1;
    let product=ctx.request.body.name;
    let KuCun=ctx.request.body.stock;
    let price=ctx.request.body.price;
    let PinPaiShan=ctx.request.body.pps;

    let obj={
        id,product,KuCun,price,PinPaiShan
    }

 
    productArr.push(obj);
    ctx.body=productArr;


}


//删除
let product_delete_fn=(ctx,next)=>{
    let delete_id=ctx.request.params

    
    let delete_obj=productArr.filter(item=>{
        return item.id!=delete_id.id
    })
    productArr = delete_obj
   

    ctx.body=delete_obj;
}


//更新传过来的id
let product_get_fn=(ctx,next)=>{
    let put_id=ctx.request.params.id

    let put_obj=productArr.filter(item=>{
        return item.id==put_id
    })
   
    ctx.body=put_obj
}
 

//这是前端编辑页面的input提交上来的方法
let product_put_fn=(ctx,next)=>{

    let requestPut_obj=ctx.request.body; //这是input传过来的值
    let id=ctx.request.body.id//请求url的id
   
    //这里为什么要把id转换成int类型呢  因为通过url传过来的id是str类型的 
    //赋值到对象里也是str类型 那么遍历的时候id就会出现问题  所以需要转换
    id=parseInt(id)

    requestPut_obj.id=id; //把强转后的id 再赋值给原对象的id

    //这里是从input传过来编辑的值 input的id==商品数组的id 过滤后的数组元素
    let put_updateObj=productArr.filter(item=>{
        return requestPut_obj.id==item.id
    })

    //把过滤后的数组元素 进行更改  把input传过来的值进行赋值
    for(let i=0;i<put_updateObj.length;i++)
    {
        put_updateObj[i].product=requestPut_obj.name
        put_updateObj[i].KuCun=requestPut_obj.stock
        put_updateObj[i].price=requestPut_obj.price
        put_updateObj[i].PinPaiShan=requestPut_obj.pps

    }

    //把修改后的值响应回去
    ctx.body=put_updateObj;
}


 module.exports={
    "get /product":product_Index_fn,
     "get /product:id":product_get_fn,
     "put /product":product_put_fn,
    "post /product":product_post_fn,
    "delete /product:id":product_delete_fn,
 } 